/*
*  Copyright 2019-2020 Zheng Jie
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*  http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
package me.zhengjie.modules.weChat.repository;

import me.zhengjie.modules.weChat.domain.SysWechatUser;
import me.zhengjie.modules.weChat.service.dto.UserWeChat;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;

/**
* @website https://docs.auauz.net
* @description /
* @author 陈震洺
* @date 2020-05-11
**/
public interface SysWechatUserRepository extends JpaRepository<SysWechatUser, Integer>, JpaSpecificationExecutor<SysWechatUser> {
    SysWechatUser findByOpenId(String openId);

    @Query(value = "SELECT u.avatar_name,u.avatar_path ,u.nick_name,uw.open_id FROM sys_user u LEFT JOIN sys_user_wechat uw ON u.user_id=uw.user_id WHERE uw.open_id = ?1",nativeQuery = true)
    List<Object[]> findUserByOpenId(String openId);

/*    @Query(value = "SELECT new me.zhengjie.modules.weChat.service.dto.UserWeChat(uw.userId,u.avatarName,u.avatarPath,u.nickName,uw.openId) FROM me.zhengjie.modules.system.domain.User u LEFT JOIN SysWechatUser uw ON u.id=uw.userId WHERE uw.openId = :openId")
    List<UserWeChat> findUserByOpenIdJAP(@Param("openId")String openId1);*/
}